#ifndef __C_SCENE_NODE_ANIMATOR_CAMERA_RPG_H_INCLUDED__
#define __C_SCENE_NODE_ANIMATOR_CAMERA_RPG_H_INCLUDED__

#include "vector2d.h"
#include "ISceneNode.h"
#include "ICameraSceneNode.h"

namespace irr
{

	namespace scene
	{

		//! Special scene node animator for RPG cameras.
		/// EG. NWN, WoW and other 3D RPG games including all MMORPG etc..
		class CSceneNodeAnimatorCameraRPG : public ISceneNodeAnimator
		{
		public:

			/** \brief Constructor
			* @param target - camera target
			* @param position - relative position
			**/
			CSceneNodeAnimatorCameraRPG (ISceneNode* target, irr::core::vector3df position);

			//! Destructor
			~CSceneNodeAnimatorCameraRPG();

			//! Animates the scene node, currently only works on cameras
			virtual void animateNode(ISceneNode* node, u32 timeMs);

		private:
			//cache
			core::vector3df TargetPosition;
			core::vector3df CameraPosition;

			ICameraSceneNode* Camera;
		};

	} // end namespace scene
} // end namespace irr
#endif // __C_SCENE_NODE_ANIMATOR_CAMERA_RPG_H_INCLUDED__

